package net.cloudcodex.client.character.view;

import java.util.Map;

import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasKeyDownHandlers;
import com.google.gwt.event.dom.client.HasKeyUpHandlers;
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.IsWidget;

/**
 * 
 * 
 * @author ADaroussin
 */
public interface CharacterDescriptionView extends IsWidget {

	public void setOwner(boolean isOwner);

	public void setGameMaster(boolean isGameMaster);

	public HasClickHandlers getPopupCancelButton();

	public void initPopupCancelButton();

	public void initUpdateCharacterButton();

	public void clearButtonPanel();

	public HasClickHandlers getUpdateCharacterNotesButton();

	public HasKeyDownHandlers getPrivateDescriptionPanelKeyDownHandlers();

	public HasKeyUpHandlers getPrivateDescriptionPanelKeyUpHandlers();

	public HasKeyDownHandlers getPublicDescriptionPanelKeyDownHandlers();

	public HasKeyUpHandlers getPublicDescriptionPanelKeyUpHandlers();

	public void setUpdateCharacterNotesButtonEnable(boolean enable);

	public void addCharacter(long id, String icon, String name);

	public void addCharacterPublicDescriptions(String description);

	public void addCharacterPrivateDescriptions(String description);

	public void addCharacterAliases(Map<Long, String> aliases);

	public void addPlayersNote(CharactersNoteView charactersNoteView);

	public void addPersonalNote(CharactersNoteView charactersNoteView);

	public void initComponent();

	public String getChangedPublicDescription();

	public String getChangedPrivateDescription();

	public Map<Long, String> getAliases();

	public void refreshPrivateDescriptions(String privateDescription);

	public void refreshPublicDescriptions(String publicDescription);

	public void setOwnerId(Long ownerId);

	public void addCharacterAdvancedInfos(boolean isProfile, boolean isLocked,
			boolean isDead);

	public void isActive(boolean isActive);

	public HasKeyDownHandlers getNameTextBoxKeyDownHandlers();
	
	public HasKeyUpHandlers getNameTextBoxKeyUpHandlers();
	
	public HasKeyDownHandlers getIconTextBoxKeyDownHandlers();
	
	public HasKeyUpHandlers getIconTextBoxKeyUpHandlers();

	public HasValueChangeHandlers<Boolean> getProfileCheckBox();

	public HasValueChangeHandlers<Boolean> getLockedCheckBox();

	public HasValueChangeHandlers<Boolean> getDeadCheckBox();

	public void addCancelButton(Button cancelButton);

	public Boolean isDead();

	public Boolean isLocked();

}
